home *** CD-ROM | disk | FTP | other *** search
/ TPUG - Toronto PET Users Group / TPUG Users Group CD / TPUG Users Group CD.iso / CRS / crs25.d81 / sid-edtr.arc / SID EDITOR (.txt) < prev   
Commodore BASIC  |  2009-10-10  |  22KB  |  578 lines

  1. 1 DN=8:GOTO 9200
  2. 5 JV=PEEK(56320):JB=1-(JV AND 16)/16:JV=JV AND 15:RETURN
  3. 8 POKE CY,3:PRINT:POKE CX,18-8*AC:PRINTAC$(AC+1):RETURN
  4. 10 PRINTCHR$(19)CHR$(146)C1$;:POKE CX,25:PRINT"MEM:"FMCHR$(157)"      ":RETURN
  5. 12 POKE 54283,129:POKE 54283,32:RETURN
  6. 19 V0=NT:V1=AC:V2=OC:V3=LN:V4=RS+2*SP:V5=TY:V6=1
  7. 20 H=PEEK(MM+CN):IFHAND3 THEN SP=1:RS=0:TY=0:RETURN
  8. 22 SP=0:LN=7-(HAND31)/4-.5*((HAND32)=32):TY=-((HAND64)=64)
  9. 24 H=PEEK(MM+CN+1):IF H=0 THEN RS=1:GOTO 28
  10. 26 RS=0:NT=(HAND7)-1:OC=7-(HAND56)/8:AC=(HAND192)/64-2
  11. 28 RETURN
  12. 30 POKE CY,21:PRINTC0$:POKE CX,X*5:H=PEEK(MM+CN):IF H AND 3 GOTO 36
  13. 31 IF RS THEN PRINT"(R)"Y$;:GOTO33
  14. 32 PRINTC0$NT$CHR$(ASC(AC$)+162*(ASC(AC$)=194))OC$Y$;
  15. 33 PRINTLN$LM$TY$(TY);
  16. 34 IF V6 THEN NT=V0:AC=V1:OC=V2:LN=V3:RS=V4AND1:SP=(V4AND2)/2:TY=V5:V6=0
  17. 35 RETURN
  18. 36 POKE 251,PEEK(MM+CN+1-(HAND2)/2):POKE 252,-((PEEK(MM+CN)AND3)<>1):SYS 1232
  19. 37 PRINTS$(PEEK(252)+1)Y$CHR$(157);:QI=ASC(MID$(S$,PEEK(252)+1))-65
  20. 38 IF ABS(V(QI))<90 THEN QJ=PEEK(251):GOSUB80:GOTO34
  21. 39 QJ=PEEK(MM+CN+1)+256*PEEK(251):GOSUB 80:GOTO 34
  22. 40 POKE 1216+SC,PK:SC=3:POKE 1219,1:PK=14:GOTO 510
  23. 45 GOSUB 5:IF JB=0 THEN RETURN
  24. 47 GOSUB 5:IF JB THEN 47
  25. 48 JB=1:RETURN
  26. 50 FORK=0 TO 6:AC%(AK%(ABS(K+6*(KY<0))))=(K<ABS(KY))*SGN(KY):NEXT:RETURN
  27. 60 LN$=CHR$(196+LN):LM$=CHR$(46+14*(LN=INT(LN))):RETURN
  28. 65 NT$=CHR$(67+NT+7*(NT>4)):AC$=CHR$(194+AC):OC$=RIGHT$(STR$(OC),1):RETURN
  29. 70 K=J-INT(J/256)*256:J=(J-K)/256:RETURN
  30. 80 IF QI<>2 GOTO 84
  31. 82 IF QJAND1 THEN PRINT-(11-INT(QJ/16)+12*(QJ/2AND7));:RETURN
  32. 83 QJ=INT(QJ/16)+12*(7-(QJ/2AND7)):GOTO 87
  33. 84 IFQI=9 THENQJ=(QJAND3548)/2+(QJAND255)+((QJAND256)=256)*2048:GOTO 87
  34. 85 IF QI>10 THEN ON QI-10 GOTO 88,88,90,90,91,92
  35. 86 IF V(QI)<0 THEN QJ=QJ+256*(QJ>127)
  36. 87 PRINT MID$(STR$(QJ),2+(QJ<0));:RETURN
  37. 88 IF QJ=0 THEN PRINT"N";:RETURN
  38. 89 PRINTFW$(QJ-1,QI-11);:RETURN
  39. 90 PRINTNU$(QJ,QI-13);
  40. 91 RETURN
  41. 92 QJ=QJ-256*(QJ=0):QJ=INT(14400/QJ):GOTO 87
  42. 200 REM
  43. 210 A$="":LH=0:PRINTCHR$(164)CHR$(157);
  44. 215 GET B$:IF B$="" GOTO 215
  45. 220 B=ASC(B$):IF B=13 OR B=141 THEN PRINT" ";:RETURN
  46. 230 IFB<>20 OR LH=0 GOTO 240
  47. 232 LH=LH-1:A$=LEFT$(A$,LH-(LH=0))
  48. 235 PRINTCHR$(157)"  "CHR$(157)CHR$(157)CHR$(164)CHR$(157);:IF LH=0 THEN A$=""
  49. 237 GOTO 215
  50. 240 IF LH=MX-(ASC(A$+" ")=45) GOTO 215
  51. 245 IF B=45 AND (FA AND 1) AND LH=0 GOTO 270
  52. 250 IF B>47 AND B<58 GOTO 270
  53. 260 IFB<32 OR B>90 OR (FA AND 2)=0 GOTO 215
  54. 270 A$=A$+B$:LH=LH+1:PRINTB$;:POKE212,0:PRINTCHR$(164)CHR$(157);:GOTO 215
  55. 500 REM
  56. 501 IF NN<0 THEN NT=0:OC=4:LN=3:RS=0:SP=0:GOTO 507
  57. 502 IF GK=0 GOTO 507
  58. 503 TN=CN:FOR X=(TN/2-3)*(TN<5) TO 7-(4-(NN-TN)/2)*-((NN-TN)<7)
  59. 504 CN=TN-6+2*X:GOSUB19:GOSUB60:GOSUB65:GOSUB30:NEXT:CN=TN+2*(TN>NN)
  60. 505 GOSUB 20:CN=TN
  61. 507 GOSUB 555:GOSUB545
  62. 509 LQ=0
  63. 510 GOSUB5:GET K$:IF K$="" THEN K$=" ":IF JV=15 AND JB=0 GOTO 510
  64. 511 IF JB OR ASC(K$)=13 GOTO 600
  65. 512 IF JV<>15 THEN POKE 198,0:GOTO 530
  66. 513 ON ABS(ASC(K$)-132) GOTO 8000,7000,4100,4000,4050,4060
  67. 514 K=-2*(K$="+")-3*(K$="\")-4*(K$="-"):IF K>0 THEN AC=K-3:GOTO 554
  68. 515 IF K$>"@" AND K$<"H" THEN NT=ASC(K$)-67:NT=NT-7*(NT<0):RS=0:SP=0:GOTO 553
  69. 516 IF K$>"/" AND K$<"8" THEN OC=VAL(K$):RS=0:SP=0:GOTO 553
  70. 517 IF K$>"G" AND K$<"X" THEN K=KL%(ASC(K$)-72):IF K>-1 THEN LN=K:GOTO 542
  71. 518 IF K$="8" THEN LN=2:GOTO 542
  72. 519 IF K$="." AND LN >0 AND LN<6 THEN LN=INT(LN)+.5*(1-(LN*2)AND1):GOTO 542
  73. 520 IF (ASC(K$) AND 127)=20 GOTO 900
  74. 521 IF K$="R" THEN RS=1-RS:TY=0:GOSUB555:GOTO 510
  75. 522 IF K$="/" THEN TY=1-TY:RS=0:GOSUB555:GOTO 510
  76. 523 IF ASC(K$)=17 OR ASC(K$)=29 THEN JV=28-ASC(K$):GOSUB650:JV=15
  77. 524 IF K$="M" THEN LQ=1:GOTO 740
  78. 525 IF ASC(K$)=221 OR ASC(K$)=219 THEN K=220-ASC(K$):LQ=1:GOTO 725
  79. 526 IF ASC(K$)=147 GOTO 980
  80. 529 GOTO 510
  81. 530 IF JV>12 THEN RS=0:GOTO 550
  82. 535 K=.5*((JV>8)-(JV<8)):LN=LN+K:IF LN=.5 OR LN=6.5 THEN LN=LN+K
  83. 540 LN=LN+7.5*(LN>7)-7.5*(LN<0)
  84. 542 GOSUB 12:IF SP GOTO 554
  85. 543 GOSUB 545:GOTO 510
  86. 545 POKE CY,17:PRINT:POKE CX,21:IF SP THEN PRINTC0$"--"SPC(2)"-------":RETURN
  87. 547 POKE CY,17:PRINT:POKE CX,21:GOSUB 60:PRINT C0$LN$LM$SPC(2)LN$(LN):RETURN
  88. 550 NT=NT+(JV=13)-(JV=14)
  89. 552 IF NT<0 OR NT>6 THEN OC=OC-(JV=14)+(JV=13):NT=3*(1-SGN(NT))
  90. 553 AC=AC%(NT):IF SP=0 THEN GOSUB 555:GOTO 510
  91. 554 SP=0:GOSUB 555:GOSUB545:GOTO 510
  92. 555 F1=0:POKE CY,9:PRINTC0$:POKE CX,16:IF RS THEN PRINT"(R)":GOTO 567
  93. 556 IF SP THEN PRINT"---":GOTO 567
  94. 557 IF OC>7 OR (OC=7 AND NT=6 AND AC=-1) THEN OC=7:NT=6:AC=0
  95. 558 IF OC<0 OR (OC=0 AND NT=0 AND AC=1) THEN OC=0:NT=0:AC=0
  96. 559 POKE 780,(1-RS)*(NT+1+8*(7-OC)+64*(AC+2)):SYS 1396
  97. 560 POKE CY,9:POKE 54276,64:GOSUB 65:PRINT
  98. 565 POKE CX,16:PRINTC0$NT$" "AC$:POKE CY,14:PRINT:POKE CX,17
  99. 567 POKE CY,14:PRINT:POKE CX,17:IF RS OR SP THEN PRINT"-":GOTO 576
  100. 568 PRINTOC$
  101. 576 POKE CY,19:PRINT:POKE CX,9:PRINTC3$CHR$(146-128*RS)"REST"CHR$(146);
  102. 577 PRINT" <--SELECT--> "CHR$(146-128*TY)"TIE":IF F1 THEN RETURN
  103. 579 IF AL=AC AND RS=0 AND SP=0 THEN 582
  104. 580 PRINTC3$:H=AC:AC=AL:GOSUB 8:AC=H: IF RS OR SP THEN AL=2:RETURN
  105. 582 AL=AC:PRINTC1$:GOSUB 8:RETURN
  106. 600 REM
  107. 605 FG=0
  108. 610 GOSUB 5:IF JB=0 THEN 680
  109. 620 IF JV=15 THEN 610
  110. 625 FG=1:IF JV<13 GOTO 610
  111. 632 POKE 1216+SC,PK
  112. 635 K=(JV=13)-(JV=14):SC=SC+K:SC=SC-K*(SC=5):SC=SC+6*((SC>6)-(SC<1))
  113. 640 PK=PEEK(1216+SC):POKE 1216+SC,-(SC=3 OR SC=1)
  114. 645 FOR K= 1 TO 90:NEXT:GOTO 610
  115. 648 GOSUB 650:GOSUB 45:IF JBTHEN POKE 198,0:GOTO40
  116. 649 GOTO 648
  117. 650 K=-(JV<8):IF(CN+(K=0))<0 OR(CN>NN AND K=1) OR JV>11 OR IN THEN FG=1:RETURN
  118. 651 IF K=0 THEN POKE CY,21:PRINT:POKE CX,35:PRINTZ$(0);
  119. 652 POKE CY,21:PRINT:PRINTZ$(1-K);:X=K*7
  120. 656 CN=CN-2+4*K:IF CN-2=NN THEN FG=1:RETURN
  121. 658 TN=CN:IF SQ=0 THEN GOSUB 20:GOSUB 545:GOSUB 555
  122. 660 CN=CN-6-14*(JV<8):IF CN<0 OR CN>NN GOTO 670
  123. 662 GOSUB19:GOSUB60:GOSUB65:GOSUB30
  124. 670 FG=1:CN=TN:GOSUB20:RETURN
  125. 680 IF FG THEN ON SC GOTO 648,800,510,750,510,700
  126. 682 IF (FM=0 AND CN>NN) OR (LN=7 AND (TY OR RS)) GOTO 510
  127. 684 IN=IN+(IN>0):POKE MM+CN,4*(7-INT(LN))-32*(LN>INT(LN))+64*TY
  128. 686 POKE MM+CN+1,(1-RS)*(NT+1+8*(7-OC)+64*(AC+2)):GOSUB 60:GOSUB 65
  129. 687 IF M1 THEN AC%(NT)=AC
  130. 688 IF NN<CN THEN NN=NN+2:FM=FM-1:GOSUB10
  131. 689 X=3:GOSUB30:POKE 780,PEEK(MM+CN+1):SYS 1396:POKE CY,21:PRINT
  132. 690 POKE 54276,64:PRINTZ$(0);:TY=0:F1=1:GOSUB576:CN=CN+2
  133. 691 IF NN-CN<8 OR IN>4 GOTO 510
  134. 692 TN=CN:CN=CN+8:X=7:GOSUB19:GOSUB60:GOSUB65:GOSUB30:CN=TN:GOTO 510
  135. 700 REM
  136. 710 GOSUB 45:IF JB GOTO 40
  137. 715 IF JV>12 AND JV<15 GOTO 740
  138. 720 K=(JV=11)-(JV=7):IF K=0 THEN 710
  139. 725 KY=KY+K:KY=KY+15*(SGN(KY)*(ABS(KY)=8)):GOSUB12
  140. 730 POKE CY,1:PRINT:POKE CX,10:PRINTC1$ABS(KY)CHR$(157)CHR$(193-2*(KY<0));
  141. 732 PRINT" ("KY$(KY+7)")":GOTO745
  142. 740 M1=1-M1:GOSUB12:POKE CY,1:PRINT:POKE CX,30:PRINTC1$MID$("ON OFF",4-M1*3,3)
  143. 745 GOSUB 50:ON LQ+1 GOTO 710,509
  144. 750 REM
  145. 760 RS=0:GOSUB 45:IF JB GOTO 40
  146. 770 K=(JV=7)-(JV=11):IF K=0 THEN 760
  147. 775 AC=AC+K:AC=AC+3*(SGN(K))*(ABS(AC)=2):IF SP=0 THEN GOSUB 555:GOTO 760
  148. 780 SP=0:GOSUB555:GOSUB 545:GOTO 760
  149. 800 REM
  150. 810 GOSUB 45:IF JB GOTO 40
  151. 815 IF JV<>11 GOTO 825
  152. 820 RS=1-RS:TY=0:GOTO 840
  153. 825 IF JV<>7 GOTO 810
  154. 830 TY=1-TY:RS=0:GOTO840
  155. 840 IF SP=0 THEN GOSUB 555:GOTO 40
  156. 845 SP=0:GOSUB 555:GOSUB545: GOTO 40
  157. 900 REM
  158. 910 K=-(ASC(K$)=20)
  159. 920 IF CN>NN OR (FM=0 AND K=0) THEN ON SQ+1 GOTO 970,7375
  160. 923 GOSUB12:IN=IN-K*2+1:IN=IN-(IN<0)
  161. 925 IF K=0 THEN POKE CY,21:PRINT:POKECX,35:PRINTZ$(0);
  162. 927 POKE CY,21:PRINT:POKE CX,15:PRINTZ$(1-K);
  163. 930 IF K GOTO 939
  164. 932 FOR I=0 TO 2 STEP 2:J=MM+CN+I:GOSUB 70:POKE 251+I,K:POKE 252+I,J:NEXT I
  165. 936 J=NN-CN+2:GOSUB 70:POKE 781,K:POKE 782,J:SYS 1024:NN=NN+2
  166. 938 FM=FM-1:ON SQ+1 GOTO 970,7375
  167. 939 IF CN=NN GOTO 950
  168. 940 FOR I=0 TO 2 STEP 2:J=MM+CN+2-I:GOSUB 70:POKE 251+I,K:POKE 252+I,J:NEXT I
  169. 942 J=NN-CN:GOSUB 70:POKE 781,K:POKE 782,J:SYS 1024
  170. 950 NN=NN-2:FM=FM+1:IF NN-CN<8 OR IN>4 THEN ON SQ+1 GOTO 970,7375
  171. 960 TN=CN:CN=CN+8:X=7:GOSUB19:GOSUB60:GOSUB65:GOSUB30:CN=TN:ONSQ+1GOTO 970,7375
  172. 970 GOSUB10:GOTO510
  173. 980 PRINTCHR$(19)SPC(25)C1$"CLEAR TO END?"
  174. 982 GET K$:IF K$="" GOTO 982
  175. 985 IF K$<>"Y" GOTO 995
  176. 990 FOR K=1 TO 5:POKE CY,21:PRINT:POKE CX,15:PRINTZ$(0);:NEXT
  177. 992 FM=FM+(NN-CN+2)/2:NN=CN-2:IN=0
  178. 995 GOSUB 10:GOTO 510
  179. 4000 REM
  180. 4010 IF M1 THEN GOSUB 50
  181. 4015 MZ=MZ+1+1000*(MZ>999):J=MZ:GOSUB70
  182. 4020 POKE MM+CN,J*64+30:POKE MM+CN+1,K:B=1:GOTO7300
  183. 4050 K=0:GOTO 4065
  184. 4060 K=NN+2
  185. 4065 IF IN GOTO 510
  186. 4067 CN=K
  187. 4070 GK=1:SYS 1802:GOSUB10:GOTO501
  188. 4100 IF NN<2 OR IN GOTO 510
  189. 4105 PRINTCHR$(19)SPC(25)C1$"MEASURE:          ";:POKECX,33
  190. 4110 FA=0:MX=3:GOSUB 200:IF A$="" THEN GOSUB 10:GOTO510
  191. 4115 J=VAL(A$):GOSUB70:POKE 1394,J*64+30:POKE 1395,K
  192. 4120 J=MM(VC):GOSUB 70:POKE 251,K:POKE 252,J
  193. 4125 J=MM(VC)+NN:GOSUB 70:POKE 1392,K:POKE 1393,J:SYS 1350
  194. 4130 CN=PEEK(251)+256*PEEK(252)-MM(VC):GOTO 4070
  195. 5000 POKE CY,3:PRINTC0$:POKE CX,10:PRINT CHR$(18)"PRESS 'Y' TO CONFIRM"
  196. 5010 GET K$:ON 1-(K$="")-2*(K$="Y") GOTO 8005,5010,5040
  197. 5040 POKE 781,237:POKE 782,246:SYS 1813:POKE 55,PEEK(1020):POKE 56,PEEK(1021)
  198. 5050 POKE 53269,0:POKE 648,4:POKE 56576,PEEK(56576)OR3:SYS 65409:CLR:END
  199. 7000 GOSUB 7905:POKE 53280,2:POKE53265,19
  200. 7001 POKE 780,24:SYS 1596
  201. 7002 POKE CY,3:PRINTC6$:POKE 53288,3:GOTO 7200
  202. 7004 PRINTC2$CHR$(147);:P$="                   ":REM 19 SPACES!
  203. 7006 PRINTCHR$(18)P$P$" "CHR$(157)CHR$(148)" "CHR$(19);
  204. 7008 U1$=CHR$(18):PRINTC6$:FOR K=1 TO 10:PRINTCHR$(185);:U1$=U1$+CHR$(192):NEXT
  205. 7110 H=0:FOR K=1 TO 10:PRINT:PRINTC2$CHR$(18);:J=5-LEN(SC$(K))/2
  206. 7114 PRINTLEFT$(P$,J)SC$(K)LEFT$(P$,J+.5);CHR$(146);
  207. 7115 FOR J=1 TON(K):H=H+1:PRINT" "C0$S$(H)" ";:NEXT:PRINT:PRINTC6$U1$;:NEXT
  208. 7116 PRINTCHR$(145):FOR K=1 TO 10:PRINTCHR$(184);:NEXT
  209. 7120 POKE CY,1:PRINTC6$:FOR K=0 TO 4:POKE CX,20:PRINTCHR$(18)P$:NEXT:RETURN
  210. 7200 IF UY>9 THEN POKE 53255,0:POKE 53288,13:GOTO 7375
  211. 7201 POKE 53288,3:POKE 53264,-((UX*40)>147)*8:POKE 53254,(108+UX*40)AND255
  212. 7202 POKE 53255,59+UY*16:POKE CX,21
  213. 7205 PRINTCHR$(18)SC$(UY+1);":";SS$(NN(UY)+UX+1)RIGHT$(I$,38-POS(0));
  214. 7207 GOSUB5:GETK$:K=ASC(K$+" "):IF K<>17 AND K<>29 GOTO 7209
  215. 7208 JV=-7*(K=29)-11*(K=17):SQ=1:GOSUB650:SQ=0:POKE CY,3:PRINTC6$:GOTO 7207
  216. 7209 IF (KAND127)=20 THEN SQ=1.1:GOTO 900
  217. 7211 JV=-JV*(JV<15)-(JV=15)*(15+(K=73)+2*(K=77)+4*(K=74)+8*(K=75))
  218. 7212 IF JV<15 THEN GOSUB12:GOTO 7216
  219. 7213 IF (JB OR K$=CHR$(13)) AND NOT (FM=0 AND CN>NN) GOTO 7250
  220. 7214 IF K$<>CHR$(133) GOTO 7207
  221. 7215 POKE 53255,0:GK=0:GOTO 9000
  222. 7216 UX=UX+(JV=11)-(JV=7):UX=UX+N(UY+1)*(UX=N(UY+1))-6*(UX<0)
  223. 7217 UY=UY+(JV=14)-(JV=13):UY=UY+11*(UY=11)-11*(UY<0)
  224. 7218 IF UY>9 THEN POKE 53255,0:POKE 53288,13:GOTO 7350
  225. 7219 IF N(UY+1)<=UX THEN UX=N(UY+1)-1
  226. 7220 GOTO 7200
  227. 7250 K=ASC(MID$(S$,NN(UY)+UX+1))-65:POKE CY,1:PRINT:POKE CX,21:PRINT CHR$(18);
  228. 7255 IF K>10 THEN PRINTV$(K-11):GOTO 7265
  229. 7260 PRINT"(";-(V(K)<0)*(V(K))"TO"ABS(V(K))")"
  230. 7265 POKE CY,5:PRINT:POKE CX,21
  231. 7267 MX=LEN(STR$(ABS(V(K))))-1:FA=-(V(K)<0)
  232. 7270 PRINTCHR$(18)"ENTER:";:GOSUB 200:IF A$="" GOTO 7001
  233. 7280 J=VAL(A$):IF ABS(J)>ABS(V(K)) OR (K=16 AND J<56) GOTO 7001
  234. 7282 IF K=16 THEN J=INT(1800/J+.5)*8:J=-J*(J<256)
  235. 7283 IFK=9THENPOKEMM+CN+1,JAND255:POKE MM+CN,(JAND1792)/8+10-16*(J<0):GOTO 7300
  236. 7284 IF K<>2 THEN J=J-256*(J<0):GOTO 7289
  237. 7286 H=16*(-11*(J<0)+12*(J/12-SGN(J)*INT(ABS(J)/12)))
  238. 7287 J=INT(H+2*(-7*(J>=0)-SGN(J)*INT(ABS(J)/12))-(J<0)+.5)
  239. 7289 IF K=6 THEN MZ=J
  240. 7290 IF ABS(V(K))>90 GOTO 7295
  241. 7292 POKE MM+CN,1:POKE MM+CN+1,PEEK(1278+NN(UY)+UX)+M(K)*J:GOTO 7300
  242. 7295 J1=K:IF J<0 THEN J=-J*(V(C)+1)+1
  243. 7297 GOSUB 70:POKE MM+CN,PEEK(1278+NN(UY)+UX)+M(J1)*J:POKE MM+CN+1,K
  244. 7300 IF NN<CN THEN NN=NN+2:FM=FM-1:IF B=1 THEN GOSUB 10
  245. 7303 IN=IN+(IN>0)
  246. 7305 POKECY,22:PRINT:POKECX,16:PRINT"    ";
  247. 7310 X=3:GOSUB30:POKE CY,21:PRINT:PRINTZ$(0);:CN=CN+2
  248. 7315 IF NN-CN<8 OR IN>4 GOTO 7320
  249. 7316 TN=CN:CN=CN+8:X=7:GOSUB19:GOSUB60:GOSUB65:GOSUB30:CN=TN
  250. 7320 ON1-(B=13)-2*(B=1) GOTO 7001,7215,510
  251. 7350 POKE CX,21:PRINT"                 ";
  252. 7355 GOSUB5:GETK$:K=0:IFK$<>"" THEN K=ASC(K$):K=K-57*(K=17)-46*(K=29)
  253. 7356 JV=-JV*(JV<15)-(JV=15)*(15+(K=73)+2*(K=77)+4*(K=74)+8*(K=75))
  254. 7357 IF JV=7 OR JV=11 THEN SQ=1:GOSUB 650:SQ=0:POKE CY,3:PRINTC6$:GOTO 7355
  255. 7358 IF JV=13 OR JV=14 THEN FOR K=1 TO 100*-(K$=""):NEXT:GOSUB12:GOTO 7217
  256. 7360 IF K$<>"" THEN IF (ASC(K$)AND127)=20 THEN SQ=1:GOTO 900
  257. 7365 IF K$=CHR$(133) GOTO 7215
  258. 7370 GOTO 7355
  259. 7375 K=SQ:SQ=0:POKE CY,3:PRINTC6$:ON 1-(K>1) GOTO 7355,7207
  260. 7500 NV(VC)=NN:CN(VC)=CN
  261. 7510 IF VC=3OR(VC=2 AND NV(3)=-2)OR(VC=1 AND NV(2)=-2 AND NV(3)=-2) GOTO 7530
  262. 7520 J=K5-NV(3)-4+(VC=1)*(NV(2)+4):GOSUB 70:POKE 251,K:POKE 252,J
  263. 7525 J=MM(1)+NV(1)+4-(VC=2)*(NV(2)+4):GOSUB 70:POKE 253,K:POKE 254,J
  264. 7527 J=NV(3)+4-(VC=1)*(NV(2)+4):GOSUB 70:POKE 781,K:POKE 782,J:SYS 1024
  265. 7530 MM(2)=MM(1)+NV(1)+4:MM(3)=MM(2)+NV(2)+4
  266. 7535 GOSUB 8690
  267. 7900 POKE 241,PEEK(241)OR128:POKE 53251,0:POKE 53281,10
  268. 7905 POKE 1140,255:POKE 1145,240:POKE 1160,K8:POKE 1165,K9:SYS 1138
  269. 7910 POKE 53280,10:POKE53281,1:POKE53249,0:POKE 53253,0:RETURN
  270. 8000 IF IN GOTO 510
  271. 8001 GOSUB 7500
  272. 8005 POKE 780,9:SYS 1596:POKE 53269,0:GOTO 8225
  273. 8010 P$=CHR$(18)+"                                       "
  274. 8015 P1$=CHR$(162):FOR K=1 TO 4:P1$=P1$+P1$:NEXT:P1$=P1$+LEFT$(P1$,6)
  275. 8020 P2$=CHR$(192):P2$=P2$+P2$+P2$:P2$=P2$+P2$+P2$+P2$
  276. 8100 PRINTCHR$(147);
  277. 8110 FOR K=1 TO 6:PRINTCHR$(150)P$:NEXT
  278. 8120 PRINTCHR$(18)" "C7$LEFT$(P$,39)
  279. 8130 FOR K=1 TO 13:PRINTCHR$(18)CHR$(150)" "C7$" "CB$" "SPC(34)" "C7$" ":NEXT
  280. 8140 PRINTCHR$(150)CHR$(18)" "C7$LEFT$(P$,39);
  281. 8141 FOR K=0 TO 960 STEP 40:POKE 55335+K,10:POKE 51239+K,160:NEXT
  282. 8142 POKE CY,19:PRINT
  283. 8145 FOR K=1 TO 4:PRINT:PRINTCHR$(150)LEFT$(P$,4)C2$LEFT$(P$,35)CHR$(150)"  ";
  284. 8146 NEXT
  285. 8150 PRINTCHR$(19)C6$SPC(13):PRINTCHR$(18)K1$P2$K2$
  286. 8152 PRINTSPC(13):PRINTCHR$(18)CHR$(221)" SID PLAYER "CHR$(221)
  287. 8154 PRINTSPC(13):PRINTCHR$(18)K3$P2$K4$
  288. 8162 POKECY,6:PRINT:POKE CX,3
  289. 8165 PRINTCB$LEFT$(P$,7)P1$LEFT$(P$,7)
  290. 8170 FOR K=1 TO 11:PRINTSPC(3)LEFT$(P$,7)CHR$(146)MID$(P$,2,22)LEFT$(P$,7):NEXT
  291. 8175 PRINTSPC(3)LEFT$(P$,7)CHR$(146)P1$LEFT$(P$,7)
  292. 8180 POKE CY,7:PRINTC6$
  293. 8190 FOR K=0 TO 5:PRINTSPC(10)K+1;CHR$(157)") "M$(K):PRINT:NEXT:RETURN
  294. 8225 GET K$:IF K$<"1" OR K$>"6" GOTO 8225
  295. 8230 J=ASC(K$)-48:POKE CY,5+J*2:PRINT:PRINTSPC(14)CHR$(18)C2$M$(J-1)
  296. 8260 ON J GOTO 8900,8500,8450,8400,8300,5000
  297. 8300 REM
  298. 8310 IF DN=1 GOTO 8005
  299. 8312 POKE780,1:POKE781,8:POKE 782,0:SYS 65466:POKE 581,36
  300. 8314 POKE780,1:POKE781,69:POKE 782,2:SYS 65469:SYS 65472
  301. 8316 POKE581,46:POKE582,77:POKE 583,85:POKE 584,83
  302. 8318 P$=CHR$(18)+"                                       ":REM 39 SPACES
  303. 8320 POKE CY,3:PRINT:POKE CX,15:PRINTCHR$(18)C0$"DIRECTORY:"
  304. 8330 POKE CY,6:PRINT:PRINTSPC(3)CB$CHR$(18)LEFT$(P1$,16)CHR$(187)CHR$(172);
  305. 8335 PRINTLEFT$(P1$,16)
  306. 8340 FOR K=1 TO 11:PRINTSPC(3)MID$(P$,2,16)CHR$(18)CHR$(161)CHR$(146)CHR$(161);
  307. 8345 PRINTMID$(P$,2,16):NEXT
  308. 8350 PRINTSPC(3)LEFT$(P1$,16)CHR$(18)CHR$(190)CHR$(188)CHR$(146)LEFT$(P1$,16)
  309. 8355 J=0:K=0:POKE CY,7:PRINTC0$
  310. 8360 POKE CX,18*K+3:SYS 1710:H=PEEK(251)+256*PEEK(252):IF ST<>0 GOTO 8376
  311. 8365 POKE CX,18*K+15:PRINTLEFT$("  ",-(H<100)-(H<10));H
  312. 8373 J=J+1:IF J>10 THEN J=0:POKE CY,7:PRINT:K=1-K:IF K=0 THEN K=-1:GOTO 8380
  313. 8374 GOTO 8360
  314. 8376 CLOSE 1:SYS 65484
  315. 8380 POKE 198,0:POKE CY,3:PRINT:PRINTSPC(7)CHR$(18)C0$"PRESS ANY KEY ";
  316. 8382 IF K<0 THEN PRINT"TO CONTINUE";:GOTO 8385
  317. 8383 PRINT"FOR MAIN MENU";:POKE CY,19:PRINT
  318. 8384 PRINTTAB(12)LEFT$("  ",2-(H<100)-(H<10))H"[157] BLOCKS FREE  "
  319. 8385 WAIT 198,15
  320. 8387 POKE CX,7:PRINTCHR$(150)LEFT$(P$,30)
  321. 8390 IF K>=0 GOTO 8005
  322. 8395 K=0:GOTO 8330
  323. 8400 REM
  324. 8402 IF NV(1)<0 AND NV(2)<0 AND NV(3)<0 GOTO 8005
  325. 8404 FOR I=6 TO 2 STEP -2:J=NV(4-I/2)+4:GOSUB 70:POKE MM(1)-I,K
  326. 8406 POKE MM(1)-I+1,J:NEXT
  327. 8408 POKE CY,3:PRINT:PRINTTAB(10)CHR$(18)C0$" CHANGE TEXT LINES? "
  328. 8410 WAIT 198,15:GET A$:ON 1-(A$="N")-2*(A$="Y") GOTO 8410,8428,8414
  329. 8414 POKE 780,9:SYS 1596:GOSUB 8490
  330. 8418 MX=32:FA=2:FOR K=0 TO 3:POKE CY,20+K:PRINT:POKE CX,4:PRINTCHR$(18)C2$;
  331. 8420 GOSUB200:TX$(K)=A$:NEXT
  332. 8424 POKE 780,3:SYS 1596
  333. 8428 POKECY,3:PRINT:POKE CX,6:PRINTI$;:POKE CX,17:MX=12:FA=2:GOSUB200
  334. 8429 IF A$="" GOTO 8005
  335. 8430 POKE 780,1:POKE 781,DN:POKE 782,0:SYS 65466:A$=A$+".MUS"
  336. 8432 POKE 780,LH+4:FOR K=0 TO LH+3:POKE TP+K,ASC(MID$(A$,K+1)):NEXT
  337. 8434 J=TP:GOSUB70:POKE781,K:POKE 782,J:SYS 65469
  338. 8435 J=MM(1)-6:GOSUB70:POKE 251,K:POKE 252,J:POKE 780,251
  339. 8436 J=MM(1)+NV(1)+NV(2)+NV(3)+12:POKE CY,2
  340. 8438 FOR K=0 TO 3:IF TX$(K)="" GOTO 8440
  341. 8439 FOR I=1 TO LEN(TX$(K)):POKE J,ASC(MID$(TX$(K),I)):J=J+1:NEXT
  342. 8440 POKE J,13:J=J+1:NEXT:POKE J,0:J=J+1:GOSUB 70:POKE 781,K:POKE 782,J
  343. 8446 GOSUB 8495:SYS 65496:POKE 648,200:PRINT:IF PEEK(783)AND1 THEN GOSUB8600
  344. 8448 GOTO 8005
  345. 8450 REM
  346. 8452 POKECY,3:PRINT:POKE CX,6:PRINTI$;:POKE CX,17:FA=2:MX=12:GOSUB 200
  347. 8456 IF A$="" GOTO 8005
  348. 8460 A$=A$+".MUS":POKE 780,1:POKE 781,DN:POKE 782,0:SYS 65466
  349. 8462 POKE 780,LH+4:FOR K=0 TO LH+3:POKE TP+K,ASC(MID$(A$,K+1)):NEXT
  350. 8464 J=TP:GOSUB70:POKE781,K:POKE 782,J:SYS 65469:POKE CY,1
  351. 8466 POKE 780,0:J=MM(1)-6:GOSUB70:POKE 781,K:POKE 782,J:GOSUB 8495:SYS 65493
  352. 8468 POKE 648,200:PRINT: IF PEEK(783)AND1 THEN GOSUB8600:GOTO 8560
  353. 8470 FOR J=6 TO 2 STEP -2:NV(4-J/2)=PEEK(MM(1)-J)+256*PEEK(MM(1)-J+1)-4:NEXT
  354. 8474 MM(2)=MM(1)+NV(1)+4:MM(3)=MM(2)+NV(2)+4:CN(1)=0:CN(2)=0:CN(3)=0
  355. 8476 FOR K=0 TO 3:TX$(K)="":NEXT:K=0:J=MM(3)+NV(3)+4
  356. 8478 IF PEEK(J)=0 GOTO 8483
  357. 8480 IF PEEK(J)=13 THEN J=J+1:K=K+1:GOTO 8478
  358. 8482 TX$(K)=TX$(K)+CHR$(PEEK(J)):J=J+1:GOTO 8478
  359. 8483 POKE 780,9:SYS 1596
  360. 8484 GOSUB 8490:POKE CY,20:FOR K=0 TO 3:PRINTC2$:POKECX,4:PRINTCHR$(18)TX$(K);
  361. 8485 NEXT:POKE 780,3:SYS 1596
  362. 8486 FM=INT((K5-MM(3)-NV(3)-2)/2)-1:IF FM>=0 GOTO 8005
  363. 8487 POKE CY,3:PRINTC0$:POKE CX,10:PRINTCHR$(18)"INSUFFICIENT  MEMORY"
  364. 8488 WAIT 198,255:GET K$:GOTO 8560
  365. 8490 POKE CY,20:FOR K=0 TO 3:PRINTC2$:POKE CX,4:PRINT CHR$(18)RIGHT$(I$,16);
  366. 8492 PRINT RIGHT$(I$,16);:NEXT:RETURN
  367. 8495 POKE648,188:PRINT "[150]":RETURN
  368. 8500 POKE CY,3:PRINT:POKE CX,10:PRINTC0$CHR$(18)" VOICE 1-3 (OR CLR) ";
  369. 8505 GET A$:IF A$="" GOTO 8505
  370. 8507 VC=VAL(A$):IF ASC(A$)=147 GOTO 8560
  371. 8510 IF VC<1ORVC>3 GOTO 8005
  372. 8519 REM
  373. 8520 IF VC=3OR(VC=2 AND NV(3)=-2)OR(VC=1 AND NV(2)=-2 AND NV(3)=-2) GOTO 8540
  374. 8530 J=MM(VC+1):GOSUB 70:POKE 251,K:POKE 252,J
  375. 8535 J=K5-NV(3)-4+(VC=1)*(NV(2)+4):GOSUB70:POKE 253,K:POKE 254,J
  376. 8537 J=NV(3)+4-(VC=1)*(NV(2)+4):GOSUB70:POKE 781,K:POKE 782,J:SYS 1024
  377. 8540 MM=MM(VC):NN=NV(VC):CN=CN(VC)
  378. 8550 POKE 53269,15:GK=1:GOTO 9000
  379. 8560 POKE 780,9:SYS 1596:GOSUB 8490
  380. 8565 POKE 780,3:SYS 1596:FOR K=1 TO 3:TX$(K)="":NV(K)=-2:CN(K)=0:NEXT:TX$(0)=""
  381. 8570 MM(2)=MM(1)+2:MM(3)=MM(1)+4:GOSUB8690
  382. 8575 FM=INT((K5-MM(1))/2)-67:GOTO 8005
  383. 8600 K=PEEK(780):POKE 780,9:SYS 1596
  384. 8605 POKE CY,3:PRINTC0$:PRINTCHR$(18);
  385. 8610 IF K=4 THEN POKE CX,13:PRINT"FILE NOT FOUND":GOTO 8620
  386. 8612 IF K=5 THEN POKE CX,11:PRINT"DEVICE NOT PRESENT":GOTO 8620
  387. 8614 POKE CX,15:PRINT"ERROR -"ST
  388. 8620 GET K$:IF K$="" GOTO 8620
  389. 8630 RETURN
  390. 8690 FOR K=1 TO 3:POKE MM(K)+NV(K)+2,1:POKE MM(K)+NV(K)+3,79:NEXT:RETURN
  391. 8900 REM PLAY OPTION
  392. 8910 FOR I=6 TO 2 STEP -2:J=NV(4-I/2)+4:GOSUB 70:POKE MM(1)-I,K
  393. 8915 POKE MM(1)-I+1,J:NEXT
  394. 8920 POKE CY,3:PRINT:POKE CX,6:PRINTCHR$(18)C0$"PLAY VOICES:";
  395. 8925 B=0:FOR K=1 TO 3:POKE CX,16+K*5:PRINTK;CHR$(157)"?"CHR$(157);
  396. 8930 GET A$:IF A$="" GOTO 8930
  397. 8935 ON 1-(A$="Y")-3*(ASC(A$)=13)-2*(A$="N") GOTO 8930,8937,8938,8939
  398. 8937 B=B+2^(K-1):PRINT" ";:NEXT:GOTO 8940
  399. 8938 PRINTCHR$(157)CHR$(157)CHR$(150)"   "C0$;:NEXT:GOTO 8940
  400. 8939 POKE 198,2:POKE 631,89:POKE 632,89:GOTO 8937
  401. 8940 POKE 198,0:SYS 49435:J=MM(1)-6:GOSUB 70:POKE 781,K:POKE 782,J:SYS 49458
  402. 8945 POKE 49152,B:J=0
  403. 8950 IF PEEK(198) THEN GET K$:J=(K$="[136]"):POKE 49152,0
  404. 8955 IF NOT PEEK(56320)AND16 THEN POKE 56325,22-PEEK(678):GOTO 8960
  405. 8956 POKE 56325,SGN(15-PEEK(56320)AND15)*(132-4*PEEK(678))+66-PEEK(678)*2
  406. 8960 IF PEEK(49152)AND7 GOTO 8950
  407. 8970 SYS 49629:POKE 54276,0:POKE 54283,0:POKE 54290,0
  408. 8972 POKE 56325,66-PEEK(678)*2:IF PEEK(49152)=0 AND J=0 GOTO 8980
  409. 8974 FOR K=1 TO 3:H=PEEK(49289+K):J=PEEK(49274+K)+256*PEEK(49277+K)-MM(K)-2
  410. 8975 IF J>=-2 AND J<=NV(K)+2 GOTO 8977
  411. 8976 J=PEEK(49292+H)+256*PEEK(49304+H)-MM(K)-2:H=H-1:GOTO 8975
  412. 8977 IF (BAND2^(K-1))=0 THEN J=CN(K)
  413. 8978 CN(K)=J:CN(K)=CN(K)*-(CN(K)>=0):NEXT
  414. 8980 IF PEEK(49152)=0 GOTO 8005
  415. 8981 POKE CX,6:PRINTCHR$(18)CHR$(150)"                            ";
  416. 8982 POKE CX,6:PRINTCHR$(18)C2$PE$(PEEK(49152)/8-1)" ERROR";
  417. 8984 PRINT CHR$(145);:POKE CX,16:PRINT"VOICE"PEEK(49184)+1CHR$(157)":"
  418. 8986 WAIT 198,255:GET A$:GOTO 8005
  419. 9000 POKE 53280,2:POKE 1140,127:POKE 1145,1:POKE 1160,147:POKE 1165,4:SYS 1138
  420. 9002 POKE 53288,1:GOTO 9130
  421. 9004 PRINTCHR$(147);
  422. 9010 P1$=C6$+CHR$(18)+CHR$(161)+C7$
  423. 9012 P$=CHR$(162):P$=P$+P$+P$:P2$=P$+P$+P$+P$+P$:P6$=CHR$(146)
  424. 9014 P3$=C6$+P6$+CHR$(161):P4$=CHR$(192):P$=CHR$(29):P7$=CHR$(221)
  425. 9016 P5$=P1$+" "+C0$+P$+" "+P$+" "+P6$+" "+P7$+" "+CHR$(18)+" "+P$+" "+P$+" "
  426. 9017 P5$=P5$+P$+C7$+" "+P6$+C6$+CHR$(161)
  427. 9050 PRINT CHR$(146)C1$"     VOICE:              MEM:"
  428. 9051 P$=CHR$(183):P$=P$+P$
  429. 9052 PRINT SPC(5)C7$P$P$P$P$SPC(12)P$P$P$P$P$
  430. 9054 POKE CX,6:PRINTC1$"KEY:";:POKE CX,22:PRINT"MEASURE:"
  431. 9057 PRINT:PRINTC3$:FOR AC=-1 TO 1 STEP 2:GOSUB 8:NEXT:PRINT C1$:AC=0:GOSUB 8
  432. 9060 U1$=P4$+P4$:U1$=U1$+U1$+U1$+U1$
  433. 9100 PRINTC0$"      [205]               "C6$CHR$(172)P2$CHR$(187)
  434. 9102 PRINTC0$"      [204]        NOTE:  "P1$C7$"               "P3$
  435. 9104 PRINTC0$" [206][207]   [204]        "C6$K1$P4$P4$P4$K2$"  "P5$
  436. 9106 PRINTC0$"[167][208][209][204][204][204][204][204][204][204][204][204]   "C6$P7$"   "C6$P7$"  "P5$
  437. 9108 PRINTC0$"[167][210][211][204][204][204][204][204][204][204][204][204]   "C6$K3$P4$P4$P4$K4$"  "P5$
  438. 9109 P$=CHR$(163):P8$=P$+P$+P$+P$+P$
  439. 9110 PRINTC0$"[167][212][213]"P$P$P$P$P8$"          "P5$
  440. 9111 P5$=" "+P7$:P5$=P5$+P5$+P5$+P5$+P5$+P5$+" ":P9$=C7$+" "+CHR$(146)
  441. 9112 P5$=C6$+CHR$(18)+CHR$(161)+P9$+C0$+P5$+CHR$(18)+P9$+C6$+CHR$(161)
  442. 9113 PRINTC0$"[167]     "P$"       OCTAVE: "P5$
  443. 9114 PRINTC0$"[167][214][215][204][204][204][204][204][204][204][204][204]    "C6$K1$P4$K2$"   "P5$
  444. 9116 PRINTC0$"[167][216][217][204][204][204][204][204][204][204][204][204]    "C6$P7$" "P7$"   "P1$"               "P3$
  445. 9118 PRINTC0$"[218]"P8$"[204]"P8$"    "C6$K3$P4$K4$"   "CHR$(188)CHR$(18);
  446. 9119 PRINTP2$CHR$(146)CHR$(190)
  447. 9120 P$=P4$+P4$+P4$:P$=P$+P$+P4$
  448. 9121 PRINTC0$"      [204]             "C6$K1$P4$P4$K2$K1$P$K2$
  449. 9122 PRINTC0$"      [204]      LENGTH:"C6$P7$"  "P7$P7$"       "P7$
  450. 9124 PRINT"                    "K3$P4$P4$K4$K3$P$K4$
  451. 9126 PRINTC3$"         REST <--SELECT--> TIE"
  452. 9128 PRINT:PRINT:PRINT"                                        "CHR$(19):RETURN
  453. 9130 IF GK THEN POKE 241,PEEK(241)AND127
  454. 9132 POKE 780,16+GK:SYS 1596
  455. 9135 POKE 53250,140:POKE 53251,224:POKE53264,0
  456. 9140 FOR K=54272 TO 54295 :POKE K,0:NEXT:K=54272
  457. 9150 POKE K+3,8:POKEK+5,0:POKEK+6,247:POKEK+24,10:POKEK+16,240:POKEK+8,120
  458. 9160 PRINTCHR$(19)CHR$(146)C1$;:POKE CX,11:PRINTVC;
  459. 9170 POKE CX,29:PRINT FM
  460. 9180 POKE CY,1:PRINT:POKE CX,10
  461. 9185 PRINTABS(KY)CHR$(157)CHR$(193-2*(KY<0))" ("KY$(KY+7)")";
  462. 9190 POKE CX,30:PRINTMID$("ON OFF",4-M1*3,3)
  463. 9199 GOTO 500
  464. 9200 PRINT "[147]":PRINT " SIDPLAYER EDITOR":PRINT" BY HARRY BRATT":PRINT
  465. 9210 POKE 780,1:POKE 781,DN:POKE782,1:SYS65466
  466. 9220 A$="EDITOR.OBJ":FOR K=1 TO 10:POKE584+K,ASC(MID$(A$,K)):NEXT
  467. 9230 POKE 780,10:POKE 781,73:POKE 782,2:SYS 65469
  468. 9240 POKE 780,0:SYS 65493:IF PEEK(783)AND1 THEN PRINT " ERROR":END
  469. 40000 REM
  470. 41000 POKE 251,DN:POKE 53280,7:POKE 53265,8:K=PEEK(49)+256*PEEK(50)+4096
  471. 41010 POKE 1020,PEEK(55):POKE 1021,PEEK(56):POKE 55,KAND255:POKE 56,K/256:CLR
  472. 41012 K5=PEEK(1020)+256*PEEK(1021)
  473. 41013 K=0:J=0:I=0:H=0:JV=0:LN=3:CX=211:CY=214:AC=0:SC=3:PK=14:NN=-2:NT=0:OC=4
  474. 41014 DIM KY$(14),S$(36),SS$(36),V(16),M(16),NV(3),CN(3),MM(3),PE$(5),V$(5)
  475. 41015 DIMFW$(6,1),NU$(1,1),KL%(15)
  476. 41017 MM(1)=PEEK(55)+256*PEEK(56)+6:MM(2)=MM(1)+2:MM(3)=MM(1)+4:DN=PEEK(251)
  477. 41018 FM=INT((K5-MM(1))/2)-67:NV(1)=NN:NV(2)=NN:NV(3)=NN
  478. 41019 CN(1)=K:CN(2)=K:CN(3)=K:POKE 648,200:POKE 53272,36:Z=PEEK (56576)
  479. 41020 FOR TP=1024 TO 1137:READ J:POKE TP,J:NEXT:TP=1827
  480. 41021 POKE 251,98:POKE 252,199:POKE253,114:POKE254,4:SYS 1030
  481. 41022 POKE 781,30:POKE 782,7:SYS 1813:POKE 657,128
  482. 41023 K8=PEEK(788):K9=PEEK(789):POKE 1213,K8:POKE 1214,K9
  483. 41024 FOR K=1 TO 36:READ S$(K),SS$(K):NEXT
  484. 41025 NN(0)=0:FOR K=1 TO 10: READ SC$(K),N(K):NN(K)=NN(K-1)+N(K):NEXT
  485. 41026 C0$=CHR$(144):C1$=CHR$(5):C3$=CHR$(159):C6$=CHR$(31):C7$=CHR$(158)
  486. 41027 CB$=CHR$(154):C2$=CHR$(28)
  487. 41028 K1$=CHR$(176):K2$=CHR$(174):K3$=CHR$(173):K4$=CHR$(189)
  488. 41030 FOR K=0 TO 18:READ AC:AC$(0)=AC$(0)+CHR$(AC):NEXT:AC=0
  489. 41032 FOR K=1 TO 2:AC$(K)=LEFT$(AC$(0),9)+CHR$(193+K)+RIGHT$(AC$(0),9):NEXT
  490. 41034 FOR K=0 TO 5:READ M$(K):NEXT
  491. 41035 IF DN=1 THEN M$(4)="(NOT AVAILABLE)"
  492. 41060 GOSUB 9004:POKE 780,5:SYS 1596:GOSUB 7004:POKE 780,7:SYS 1596
  493. 41064 GOSUB 8010:POKE 780,3:SYS 1596:POKE 53280,10
  494. 41070 POKE 56578,PEEK(56578)OR3:POKE 56576,(PEEK(56576)AND252)
  495. 41080 POKE 251,0:POKE 252,208:POKE 253,0:POKE 254,208:POKE 781,0:POKE 782,8
  496. 41085 POKE 56334,PEEK(56334)AND254:POKE 1,PEEK(1)AND251:SYS 1024
  497. 41090 FOR K=0 TO 223:READ J:POKE 53768+K,J:POKE 54792+K,255-J:NEXT
  498. 41095 POKE 1,PEEK(1) OR 4:POKE 56334,PEEK(56334) OR 1
  499. 41122 FOR K=0 TO 7:READ LN$(K):NEXT K
  500. 41125 FOR K=53248 TO 53254 STEP 2:POKE K,0:NEXT:POKE 53264,0
  501. 41130 POKE 52216,48:POKE 52217,49:POKE 52218,50:POKE 52219,49:POKE 53276,11
  502. 41135 POKE 53287,7:POKE 53285,6:POKE 53289,0:POKE 53290,13
  503. 41138 POKE 53275,10:POKE 53277,10:FOR K=52224 TO 52415:POKE K,0:NEXT
  504. 41140 J=52225:POKE J,85:FOR K=1 TO 6:POKE J+K*3,105:NEXT:POKE J+21,85
  505. 41142 J=52288:FOR I=0 TO 1:FOR K=0 TO 1:POKE J+K*3+I*57,85:POKE J+K*3+I*57+1,85
  506. 41143 NEXT:NEXT:FOR K=6 TO 54 STEP 3:POKE J+K,106:POKE J+K+1,169:NEXT
  507. 41145 J=52398:POKE J,63:POKE J+3,127:POKE J+6,255:POKE J+9,254:POKE J+12,124
  508. 41147 FOR I=J-30 TO J-3 STEP 3:POKE I,1:NEXT
  509. 41160 P$=" "+CHR$(20):P$=P$+P$+P$+P$+P$:P$=P$+CHR$(17)+P$:Z$(0)=P$
  510. 41162 P$=CHR$(148)+" "+CHR$(157):P$=P$+P$+P$+P$+P$:P$=P$+CHR$(17)+P$:Z$(1)=P$
  511. 41165 Y$=CHR$(157):Y$=Y$+Y$+Y$+CHR$(17)+" "
  512. 41175 FOR K=0 TO 14:READ KY$(K)
  513. 41177 IF K<6 THEN KY$(K)=KY$(K)+"[195]"
  514. 41178 IF K>12 THEN KY$(K)=KY$(K)+"[193]"
  515. 41179 NEXT K
  516. 41180 FOR K=0 TO 6:READ AK%(K):NEXT K
  517. 41185 TY$(0)="  ":TY$(1)="[219][220]"
  518. 41196 I$=CHR$(18)+CHR$(150)+"FILENAME: "+CHR$(146)+CHR$(161)+C0$
  519. 41197 I$=I$+"                "
  520. 41220 S$="QFDOFPDDPLEDNEFNADADFMKENNBFHJCGNFPF"
  521. 41225 FOR K=0 TO 16:READ V(K),M(K):NEXT
  522. 41230 FOR K=0 TO 5:READ V$(K):NEXT
  523. 41235 FOR K=0 TO 6:READ FW$(K,0),FW$(K,1):NEXT
  524. 41237 FOR K=0 TO 1:READ NU$(K,0),NU$(K,1):NEXT
  525. 41240 GOSUB50:AL=2
  526. 41250 FOR K=0 TO 5:READ PE$(K):NEXT
  527. 41350 FOR K=0 TO 15:KL%(K)=-1:NEXT
  528. 41360 FOR K=0 TO 5:READ I,J:KL%(I-8)=J:NEXT
  529. 41370 POKE 53281,1:POKE 53265,27
  530. 49999 GOSUB8690:GOTO 8005
  531. 61100 DATA 142,112,4,140,113,4,165,253,56,229,251,170,165,254,229,252,168,138
  532. 61101 DATA 205,112,4,152,237,113,4,144,35,160,0,174,113,4,240,14,177,251,145
  533. 61102 DATA 253,200,208,249,230,252,230,254,202,208,242,174,112,4,240,8,177,251
  534. 61103 DATA 145,253,200,202,208,248,96,173,113,4,168,101,252,133,252,152,24,101
  535. 61104 DATA 254,133,254,172,112,4,240,9,136,177,251,145,253,192,0,208,247,174
  536. 61105 DATA 113,4,240,16,198,252,198,254,136,177,251,145,253,192,0,208,247,202
  537. 61106 DATA 208,240,96,177,2
  538. 61150 DATA TEM,SET,UTL,UTILITY SET,VOL,SET,BMP,BUMP
  539. 61151 DATA HED,HEAD,TAL,TAIL,CAL,CALL,DEF,DEFINE,END,END
  540. 61152 DATA F-M,MODE,AUT,AUTO,RES,RESONANCE,FLT,THROUGH,F-S,SWEEP,F-C,CUTOFF
  541. 61153 DATA F-X,EXTERNAL,ATK,ATTACK,DCY,DECAY,SUS,SUSTAIN,RLS,RELEASE
  542. 61154 DATA PNT,R POINT,WAV,SET,P-W,P WIDTH,P-S,P SWEEP,SNC,SYNC,RNG,RING MOD
  543. 61155 DATA VDP,VIB DEPTH,VRT,VIB RATE,POR,PORTAMENTO,DTN,DETUNE,TPS,TRANSPOSE
  544. 61156 DATA MS#,MEASURE #,3-O,VOICE 3 OFF,FLG,FLAG,HLT,HALT,AUX,AUXILIARY
  545. 61157 DATA TEMPO,2,VOLUME,2,REPEAT,2,PHRASE,3,FILTER,3,FILTER,4,ENVELOPE,5
  546. 61158 DATA WAVEFORM,5,FREQ,5,MISC,5
  547. 61190 DATA 162,162,162,18,17,157,157,157,32,193,32,146,17,157,157,157
  548. 61192 DATA 183,183,183
  549. 61194 DATA PLAY MUSIC,EDIT MUSIC,LOAD MUSIC FILE,SAVE MUSIC FILE,DISK DIRECTORY
  550. 61195 DATA QUIT
  551. 61200 REM
  552. 61201 DATA 108,254,108,254,108,0,0,0,96,124,108,108,124,12,0,0
  553. 61202 DATA 192,192,240,216,240,0,0,0
  554. 61203 DATA 30,27,30,27,30,123,248,240,30,27,30,27,24,120,248,240
  555. 61204 DATA 30,27,24,24,24,120,248,240
  556. 61205 DATA 24,24,24,24,24,120,248,240,12,12,12,12,12,124,204,248
  557. 61206 DATA 0,0,0,0,120,204,204,120,0,0,99,99,99,99,110,0
  558. 61207 DATA 0,24,60,102,126,102,102,102
  559. 61208 DATA 255,0,0,0,255,0,0,0,0,0,0,0,255,0,0,0
  560. 61209 DATA 0,0,0,7,12,24,24,24,0,0,0,128,192,192,192,192
  561. 61210 DATA 255,13,15,6,255,14,27,27,255,128,0,0,255,0,0,0
  562. 61211 DATA 255,49,55,55,255,54,24,12,255,224,176,152,255,216,216,240
  563. 61212 DATA 255,0,24,25,15,0,0,0,255,96,96,192,0,0,0,0
  564. 61213 DATA 255,48,96,112,255,112,0,0,255,96,51,51,255,48,51,99
  565. 61214 DATA 255,0,1,3,255,28,112,0,255,192,128,0,255,0,0,0,3,0,0,0,0,0,0,0
  566. 61215 DATA 96,96,48,48,28,15,3,0,6,6,12,12,56,240,192,0
  567. 61300 DATA 32ND   ,16TH   ,EIGHTH ,QUARTER,HALF   ,WHOLE  ,UTILITY,ABS SET
  568. 61306 DATA C,G,D,A,E,B,F ,C ,G ,D ,A ,E ,B ,F,C
  569. 61310 DATA 3,0,4,1,5,2,6
  570. 61450 DATA 15,8,127,256,-95,256,15,16,-127,256,255,256,999,64,16383,4,2047,32
  571. 61452 DATA -2047,16,4095,16,7,32,7,32,1,8,1,8,0,0,900,256
  572. 61454 DATA 1=L 2=B 4=H,0=N 1=T 2=S 4=P,( 0=NO / 1=YES ),( 0=UP / 1=DOWN)
  573. 61456 DATA ( 0=YES ),( 56 TO 900 )
  574. 61458 DATA L,T,B,S,LB,TS,H,P,LH,TP,BH,SP,LBH,TSP,NO,UP,YES,DWN
  575. 61460 DATA CLOBBER,ILLEGAL DURATION,DURATION OVERFLOW,STACK UNDERFLOW
  576. 61462 DATA STACK OVERFLOW,UNDEFINED PHRASE CALL
  577. 61470 DATA 20,0,19,1,17,3,8,4,23,5,21,6
  578.